<?php

namespace app\api\controller;

use app\common\model\Alipay;
use app\common\model\Wxpay;
use think\facade\Db;
use think\facade\Log;
use think\facade\Request;

class Notify extends \app\BaseController
{
    /**
     * 支付宝异步回调.
     */
    public function alipayNotify($agentId = 0)
    {
        $pay = new Alipay($agentId);

        return $pay->notify();
    }

    /**
     * 微信支付回调.
     */
    public function wxpayNotify($agentId = 0, $type = 'wechat')
    {
        $pay = new Wxpay($agentId, $type);

        return $pay->handlePaidNotify();
    }

    /**
     * 微信，支付宝同步回调.
     */
    public function returnUrl()
    {
        $channel = input('channel', '');
        $url = Request::domain() . '/h5/?channel=' . $channel;

        return redirect($url);
    }

    /**
     * 话费充值回调【中恒通讯】.
     */
    public function egutangNotify()
    {
        $params = input('');
        $model = new \api\Egutang([]);
        echo $model->notify($params);
    }

    /**
     * 话费充值回调【券妈妈】.
     */
    public function quanmamaNotify()
    {
        // $key = 'quanmama_info_key';
        // $info = cache($key);
        // if (empty($info)) {
        $info = Db::name('mobile_supplier')
            ->field('id, app_id, app_secret, url')
            ->where('code', 'quanmama')
            ->where('is_deleted', 0)
            ->find();
        // }
        // cache($key, $info, 300);

        if (empty($info)) {
            echo '账号异常';
            exit;
        }
        $model = new \api\Quanmama($info);
        echo $model->notify(input(''));
    }

    /**
     * 话费充值回调【券妈妈2】.
     */
    public function quanmama2Notify()
    {
        // $key = 'quanmama_info_key';
        // $info = cache($key);
        // if (empty($info)) {
        $info = Db::name('mobile_supplier')
            ->field('id, app_id, app_secret, url')
            ->where('code', 'quanmama2')
            ->where('is_deleted', 0)
            ->find();
        // }
        // cache($key, $info, 300);

        if (empty($info)) {
            echo '账号异常';
            exit;
        }
        $model = new \api\Quanmama2($info);
        echo $model->notify(input(''));
    }

    /**
     * 话费充值回调【万图】.
     */
    public function nianyuNotify()
    {
        // $key = 'nianyu_info_key';
        // $info = cache($key);
        // if (empty($info)) {
        $info = Db::name('mobile_supplier')
            ->field('id, app_id, app_secret, url')
            ->where('code', 'nianyu')
            ->where('is_deleted', 0)
            ->find();
        // }
        // cache($key, $info, 300);

        if (empty($info)) {
            echo '账号异常';
            exit;
        }
        $model = new \api\Nianyu($info);
        echo $model->notify(input(''));
    }

    /**
     * 话费充值回调【万图拍996】.
     */
    public function nianyu996Notify()
    {
        // $key = 'nianyu996_info_key';
        // $info = cache($key);
        // if (empty($info)) {
        $info = Db::name('mobile_supplier')
            ->field('id, app_id, app_secret, url')
            ->where('code', 'nianyu996')
            ->where('is_deleted', 0)
            ->find();
        // }
        // cache($key, $info, 300);

        if (empty($info)) {
            echo '账号异常';
            exit;
        }
        $model = new \api\Nianyu996($info);
        echo $model->notify(input(''));
    }

    /**
     * 话费充值回调【万图拍99.99】.
     */
    public function nianyu9999Notify()
    {
        // $key = 'nianyu996_info_key';
        // $info = cache($key);
        // if (empty($info)) {
        $info = Db::name('mobile_supplier')
            ->field('id, app_id, app_secret, url')
            ->whereIn('code', ['nianyu9999', 'nianyu-9999'])
            ->where('is_deleted', 0)
            ->find();
        // }
        // cache($key, $info, 300);

        if (empty($info)) {
            echo '账号异常';
            exit;
        }
        $model = new \api\Nianyu9999($info);
        echo $model->notify(input(''));
    }

    /**
     * 光汇回调通知.
     */
    public function guanghuiNotify()
    {
        echo 'ok';
    }

    /**
     * 52生活话费充值回调.
     */
    public function ksbappNotify()
    {
        // $key = 'ksbapp_info_key';
        // $info = cache($key);
        // if (empty($info)) {
        $info = Db::name('mobile_supplier')
            ->field('id, app_id, app_secret, url')
            ->where('code', 'ksbapp')
            ->where('is_deleted', 0)
            ->find();
        // }
        // cache($key, $info, 300);

        if (empty($info)) {
            echo '账号异常';
            exit;
        }
        $model = new \api\Ksbapp($info);
        echo $model->notify(input(''));
    }

    /**
     * 微客云话费充值回调.
     */
    public function wikeyunNotify()
    {
        // $key = 'wikeyun_info_key';
        // $info = cache($key);
        // if (empty($info)) {
        $info = Db::name('mobile_supplier')
            ->field('id, app_id, app_secret, url')
            ->whereIn('code', ['wikeyun', 'wikeyun96'])
            ->where('is_deleted', 0)
            ->find();
        // }
        // cache($key, $info, 300);

        if (empty($info)) {
            echo '账号异常';
            exit;
        }
        $model = new \api\Wikeyun($info);
        echo $model->notify(input(''));
    }

    /**
     * 微客云话费充值回调.[24小时回调]
     */
    public function wikeyun24Notify()
    {
        // $key = 'wikeyun24_info_key';
        // $info = cache($key);
        // if (empty($info)) {
        $info = Db::name('mobile_supplier')
            ->field('id, app_id, app_secret, url')
            ->where('code', 'wikeyun24')
            ->where('is_deleted', 0)
            ->find();
        // }
        // cache($key, $info, 300);

        if (empty($info)) {
            echo '账号异常';
            exit;
        }
        $model = new \api\Wikeyun24($info);
        echo $model->notify(input(''));
    }

    /**
     * 慧仕话费充值回调.
     */
    public function hijinNotify()
    {
        // $key = 'hijin_info_key';
        // $info = cache($key);
        // if (empty($info)) {
        $info = Db::name('mobile_supplier')
            ->field('id, app_id, app_secret, url')
            ->where('code', 'hijin')
            ->where('is_deleted', 0)
            ->find();
        // }
        // cache($key, $info, 300);

        if (empty($info)) {
            echo '账号异常';
            exit;
        }
        $model = new \api\Hijin($info);
        $data = file_get_contents('php://input');
        Log::info($data);
        $data = json_decode($data, true);
        $res = $model->notify($data);
        $code = 200;
        if (false === $res) {
            $code = 400;
        }

        return response()->code($code);
    }

    /**
     * 慧仕话费充值回调[10分钟].
     */
    public function hijin10Notify()
    {
        // $key = 'hijin10_info_key';
        // $info = cache($key);
        // if (empty($info)) {
        $info = Db::name('mobile_supplier')
            ->field('id, app_id, app_secret, url')
            ->where('code', 'hijin10')
            ->where('is_deleted', 0)
            ->find();
        // }
        // cache($key, $info, 300);

        if (empty($info)) {
            echo '账号异常';
            exit;
        }
        $model = new \api\Hijin10($info);
        $data = file_get_contents('php://input');
        Log::info($data);
        $data = json_decode($data, true);
        $res = $model->notify($data);
        $code = 200;
        if (false === $res) {
            $code = 400;
        }

        return response()->code($code);
    }

    /**
     * 山东晨也信息9折慢充.
     */
    public function chenyeNotify()
    {
        // $key = 'chenye_info_key';
        // $info = cache($key);
        // if (empty($info)) {
        $info = Db::name('mobile_supplier')
            ->field('id, app_id, app_secret, url')
            ->where('code', 'chenye')
            ->where('is_deleted', 0)
            ->find();
        // }
        // cache($key, $info, 300);

        if (empty($info)) {
            echo '账号异常';
            exit;
        }
        $model = new \api\Chenye($info);
        // $data = file_get_contents('php://input');
        $data = input('');
        Log::info($data);
        // $data = json_decode($data, true);
        echo $model->notify($data);
    }

    /**
     * 北京椰子话费充值
     */
    public function xyzshopsNotify()
    {
        // $key = 'xyzshops_info_key';
        // $info = cache($key);
        // if (empty($info)) {
        $info = Db::name('mobile_supplier')
            ->field('id, app_id, app_secret, url')
            ->where('code', 'xyzshops')
            ->where('is_deleted', 0)
            ->find();
        // }
        // cache($key, $info, 300);

        if (empty($info)) {
            echo '账号异常';
            exit;
        }
        $model = new \api\Xyzshops($info);
        echo $model->notify(input(''));
    }

    /**
     * 北京椰子话费充值 10分钟
     */
    public function xyzshops10Notify()
    {
        // $key = 'xyzshops_info_key';
        // $info = cache($key);
        // if (empty($info)) {
        $info = Db::name('mobile_supplier')
            ->field('id, app_id, app_secret, url')
            ->whereIn('code', ['xyzshops10', 'xyzshops-10'])
            ->where('is_deleted', 0)
            ->find();
        // }
        // cache($key, $info, 300);

        if (empty($info)) {
            echo '账号异常';
            exit;
        }
        $model = new \api\Xyzshops10($info);
        echo $model->notify(input(''));
    }

    /**
     * 北京椰子话费充值 30分钟
     */
    public function xyzshops30Notify()
    {
        // $key = 'xyzshops_info_key';
        // $info = cache($key);
        // if (empty($info)) {
        $info = Db::name('mobile_supplier')
            ->field('id, app_id, app_secret, url')
            ->whereIn('code', ['xyzshops30', 'xyzshops-30'])
            ->where('is_deleted', 0)
            ->find();
        // }
        // cache($key, $info, 300);

        if (empty($info)) {
            echo '账号异常';
            exit;
        }
        $model = new \api\Xyzshops30($info);
        echo $model->notify(input(''));
    }

    /**
     * 北京椰子话费充值 90分钟回调
     */
    public function xyzshops90Notify()
    {
        // $key = 'xyzshops_info_key';
        // $info = cache($key);
        // if (empty($info)) {
        $info = Db::name('mobile_supplier')
            ->field('id, app_id, app_secret, url')
            ->whereIn('code', ['xyzshops90', 'xyzshops-90'])
            ->where('is_deleted', 0)
            ->find();
        // }
        // cache($key, $info, 300);

        if (empty($info)) {
            echo '账号异常';
            exit;
        }
        $model = new \api\Xyzshops90($info);
        echo $model->notify(input(''));
    }

    /**
     * 北京椰子话费充值 慢充24小时
     */
    public function xyzshopsm24hNotify()
    {
        // $key = 'xyzshopsm24h_info_key';
        // $info = cache($key);
        // if (empty($info)) {
        $info = Db::name('mobile_supplier')
            ->field('id, app_id, app_secret, url')
            ->whereIn('code', ['xyzshopsm24h', 'xyzshops-m24h'])
            ->where('is_deleted', 0)
            ->find();
        // }
        // cache($key, $info, 300);

        if (empty($info)) {
            echo '账号异常';
            exit;
        }
        $model = new \api\Xyzshopsm24h($info);
        echo $model->notify(input(''));
    }

    /**
     * 乐充时代
     */
    public function lechongNotify()
    {
        // $key = 'lechong_info_key';
        // $info = cache($key);
        // if (empty($info)) {
        $info = Db::name('mobile_supplier')
            ->field('id, app_id, app_secret, url')
            ->where('code', 'lechong')
            ->where('is_deleted', 0)
            ->find();
        // }
        // cache($key, $info, 300);
        $data = input('');
        Log::info('乐充回调' . json_encode($data));

        if (empty($info)) {
            echo '账号异常';
            exit;
        }
        $model = new \api\Lechong($info);
        // $data = file_get_contents('php://input');
        // $data = json_decode($data, true);
        echo $model->notify($data);
    }

    /**
     * 乐充时代[992]
     */
    public function lechong992Notify()
    {
        // $key = 'lechong992_info_key';
        // $info = cache($key);
        // if (empty($info)) {
        $info = Db::name('mobile_supplier')
            ->field('id, app_id, app_secret, url')
            ->where('code', 'lechong992')
            ->where('is_deleted', 0)
            ->find();
        // }
        // cache($key, $info, 300);
        $data = input('');
        Log::info('乐充992回调' . json_encode($data));

        if (empty($info)) {
            echo '账号异常';
            exit;
        }
        $model = new \api\Lechong992($info);
        // $data = file_get_contents('php://input');
        // $data = json_decode($data, true);
        echo $model->notify($data);
    }

    /**
     * 北京高阳
     */
    public function gaoyangNotify()
    {
        $data = input('');
        Log::info('北京高阳' . json_encode($data));
        // $key = 'lechong992_info_key';
        // $info = cache($key);
        // if (empty($info)) {
        $info = Db::name('mobile_supplier')
            ->field('id, app_id, app_secret, url')
            ->where('code', 'pay19')
            ->where('is_deleted', 0)
            ->find();
        // }
        // cache($key, $info, 300);

        if (empty($info)) {
            echo '账号异常';
            exit;
        }
        $model = new \api\Pay19($info);
        $model->notify($data);
        if (isset($data['status'])) {
            echo $data['status'];
        }
    }

    /**
     * 36鲸
     */
    public function duojing36Notify()
    {
        $data = input('');
        // Log::info('36鲸' . json_encode($data));
        // $key = 'duojing36_notify_info_key';
        // $info = cache($key);
        // if (empty($info)) {
        $info = Db::name('mobile_supplier')
            ->field('id, app_id, app_secret, url')
            ->where('code', 'duojing36')
            ->where('is_deleted', 0)
            ->find();
        // }
        // cache($key, $info, 300);

        if (empty($info)) {
            echo '账号异常';
            exit;
        }
        $model = new \api\Duojing36($info);
        echo $model->notify($data);
    }

    /**
     * 36鲸【临下】
     */
    public function duojing36lxNotify()
    {
        $data = input('');
        // Log::info('36鲸lx' . json_encode($data));
        // $key = 'duojing36_notify_info_key';
        // $info = cache($key);
        // if (empty($info)) {
        $info = Db::name('mobile_supplier')
            ->field('id, app_id, app_secret, url')
            ->where('code', 'duojing36lx')
            ->where('is_deleted', 0)
            ->find();
        // }
        // cache($key, $info, 300);

        if (empty($info)) {
            echo '账号异常';
            exit;
        }
        $model = new \api\Duojing36lx($info);
        echo $model->notify($data);
    }

    /**
     * 36鲸【有美生活】
     */
    public function duojing36ymNotify()
    {
        $data = input('');
        // Log::info('36鲸ym' . json_encode($data));
        // $key = 'duojing36_notify_info_key';
        // $info = cache($key);
        // if (empty($info)) {
        $info = Db::name('mobile_supplier')
            ->field('id, app_id, app_secret, url')
            ->where('code', 'duojing36ym')
            ->where('is_deleted', 0)
            ->find();
        // }
        // cache($key, $info, 300);

        if (empty($info)) {
            echo '账号异常';
            exit;
        }
        $model = new \api\Duojing36ym($info);
        echo $model->notify($data);
    }

    /**
     * 36鲸【尖椒网络】
     */
    public function duojing36jjNotify()
    {
        $data = input('');
        // Log::info('36鲸jj' . json_encode($data));
        // $key = 'duojing36_notify_info_key';
        // $info = cache($key);
        // if (empty($info)) {
        $info = Db::name('mobile_supplier')
            ->field('id, app_id, app_secret, url')
            ->where('code', 'duojing36jj')
            ->where('is_deleted', 0)
            ->find();
        // }
        // cache($key, $info, 300);

        if (empty($info)) {
            echo '账号异常';
            exit;
        }
        $model = new \api\Duojing36jj($info);
        echo $model->notify($data);
    }

    /**
     * 36鲸【尖椒网络】
     */
    public function duojing36jj2Notify()
    {
        $data = input('');
        // Log::info('36鲸jj' . json_encode($data));
        // $key = 'duojing36_notify_info_key';
        // $info = cache($key);
        // if (empty($info)) {
        $info = Db::name('mobile_supplier')
            ->field('id, app_id, app_secret, url')
            ->where('code', 'duojing36jj2')
            ->where('is_deleted', 0)
            ->find();
        // }
        // cache($key, $info, 300);

        if (empty($info)) {
            echo '账号异常';
            exit;
        }
        $model = new \api\Duojing36jj2($info);
        echo $model->notify($data);
    }

    /**
     * 36鲸【尖椒网络】
     */
    public function duojing36jj3Notify()
    {
        $data = input('');
        // Log::info('36鲸jj' . json_encode($data));
        // $key = 'duojing36_notify_info_key';
        // $info = cache($key);
        // if (empty($info)) {
        $info = Db::name('mobile_supplier')
            ->field('id, app_id, app_secret, url')
            ->where('code', 'duojing36jj3')
            ->where('is_deleted', 0)
            ->find();
        // }
        // cache($key, $info, 300);

        if (empty($info)) {
            echo '账号异常';
            exit;
        }
        $model = new \api\Duojing36jj3($info);
        echo $model->notify($data);
    }

    /**
     * 36鲸【尖椒网络】
     */
    public function duojing36jj4Notify()
    {
        $data = input('');
        // Log::info('36鲸jj' . json_encode($data));
        // $key = 'duojing36_notify_info_key';
        // $info = cache($key);
        // if (empty($info)) {
        $info = Db::name('mobile_supplier')
            ->field('id, app_id, app_secret, url')
            ->where('code', 'duojing36jj4')
            ->where('is_deleted', 0)
            ->find();
        // }
        // cache($key, $info, 300);

        if (empty($info)) {
            echo '账号异常';
            exit;
        }
        $model = new \api\Duojing36jj4($info);
        echo $model->notify($data);
    }

    /**
     * 南京硅通回调地址
     */
    public function guiTongNotify() {
        $data = input('');

        $info = Db::name('mobile_supplier')
            ->field('id, app_id, app_secret, url')
            ->where('code', 'guitong')
            ->where('is_deleted', 0)
            ->find();

        if (empty($info)) {
            echo '账号异常';
            exit;
        }
        $model = new \api\Guitong($info);
        echo $model->notify($data);
    }
     /**
     * 杭州丰辉回调地址
     */
    public function fenghuiNotify() {
        $url = Request::url(true);
        $data = input('');

        $info = Db::name('mobile_supplier')
            ->field('id, app_id, app_secret, url')
            ->where('code', 'fenghui')
            ->where('is_deleted', 0)
            ->find();

        // Log::info('杭州丰辉回调：' . json_encode($data));
        Log::info('杭州丰辉回调：' . $url);

        if (empty($info)) {
            echo '账号异常';
            exit;
        }
        $model = new \api\Fenghui($info);
        echo $model->notify($data);
    }
   //mark请勿删除
}
